﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Data;
using System.Web.UI.WebControls;
using PuntoMascotasWeb.BackEnd.BC;
using PuntoMascotasWeb.BackEnd.BE;
using Microsoft.Reporting.WebForms;

namespace PuntoMascotasWeb.WebSite.Aplicacion.Informes
{
    public partial class InformeVentasInsumos  : PuntoMascotasWeb.WebSite.Includes.Funciones.Funciones
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!Page.IsPostBack)
                {
                    CargarCombos();
                    CargarReporte();
                }
            }
            catch (Exception ex)
            {                
                 ProcesarExcepciones(ex);
            }
            
        }


        protected void btnVerInforme_Click(object sender, EventArgs e)
        {
            Int32 wiIdCliente = 0;
            Int32 wiIdEmpleado = 0;
            DateTime? wdtFecha = null;

            try
            {
                if (cmbClientes.SelectedIndex > 0) 
                {
                    wiIdCliente = Convert.ToInt32(cmbClientes.SelectedValue);
                }
                if (cmbEmpleados.SelectedIndex > 0)
                {
                    wiIdEmpleado = Convert.ToInt32(cmbEmpleados.SelectedValue);
                }
                if (txtFecha.Text != "") 
                {
                    
                }

                CargarReporte(wiIdEmpleado, wiIdCliente, wdtFecha);

            }
            catch (Exception ex)
            {

                ProcesarExcepciones(ex);
            }
        }

        private void CargarReporte(Int32 piIdEmpleado = 0, Int32 piIdCliente = 0, DateTime? pdtFecha = null)
        {
            VentaBE woVentaBE;

            try
            {
                woVentaBE = new VentaBE();

                if (piIdCliente != 0) 
                {
                    woVentaBE.IdCliente = piIdCliente;
                }

                if (piIdEmpleado != 0) 
                {
                    woVentaBE.IdEmpleado = piIdEmpleado;
                }
                if (pdtFecha != null) 
                {
                    woVentaBE.Fecha = pdtFecha;
                }

                ReportDataSource woDs = new ReportDataSource();
                DataSet woDsVentas;
                woDsVentas = VentaBC.GetByParam(woVentaBE);

                if ((woDsVentas != null) && (woDsVentas.Tables.Count > 0))
                {
                    woDs.Value = woDsVentas.Tables[0];
                }
                else 
                {
                    woDs.Value = null;
                }

                woDs.Name = "DsVenta";

                ReportViewer1.LocalReport.DataSources.Clear();
                ReportViewer1.LocalReport.DataSources.Add(woDs);
                ReportViewer1.DataBind();
            }
            catch (Exception ex)
            {                
                throw ex;
            }
        }

        private void CargarCombos()
        {
            try
            {
                CargarComboEmpleados();
                CargarComboClientes();   
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private void CargarComboEmpleados()
        {
            DataSet woDs;
            DataRow woDr;
           EmpleadoBE woEmpleadoBE;

            try
            {
                woEmpleadoBE = new EmpleadoBE();
                woEmpleadoBE.Borrado = "N";
                woDs = EmpleadoBC.GetByParam(woEmpleadoBE);

                if (woDs != null)
                {
                    if (woDs.Tables.Count > 0)
                    {
                        woDr = woDs.Tables[0].NewRow();
                        woDr["IdEmpleado"] = 0;
                        woDr["NomYApe"] = "Seleccione un Empleado...";
                        woDs.Tables[0].Rows.InsertAt(woDr, 0);

                        this.cmbEmpleados.Items.Clear();
                        cmbEmpleados.DataSource = woDs.Tables[0];
                        cmbEmpleados.DataTextField = "NomYApe";
                        cmbEmpleados.DataValueField = "IdEmpleado";
                        cmbEmpleados.DataBind();
                    }
                }

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private void CargarComboClientes()
        {
            DataSet woDs;
            DataRow woDr;
            ClientesBE woClientesBE;

            try
            {
                woClientesBE = new ClientesBE();
                woClientesBE.Borrado = "N";
                woDs = ClientesBC.GetByParam(woClientesBE);

                if (woDs != null)
                {
                    if (woDs.Tables.Count > 0)
                    {
                        woDr = woDs.Tables[0].NewRow();
                        woDr["Id"] = 0;
                        woDr["NomYApe"] = "Seleccione un Cliente...";
                        woDs.Tables[0].Rows.InsertAt(woDr, 0);

                        this.cmbClientes.Items.Clear();
                        this.cmbClientes.DataSource = woDs.Tables[0];
                        cmbClientes.DataTextField = "NomYApe";
                        cmbClientes.DataValueField = "Id";
                        cmbClientes.DataBind();
                    }
                }

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }



    }
}